iconv and nkf

  • nkfばっかりつかってたのでメモ
  • guessできないっぽい
  • のでnkfの方がいいと思ってnkfも調べてた

iconv

iconv --version
iconv (GNU libiconv 1.11)
  • iconv --help
  • man iconv

iconv - character set conversion

code list

iconv -l

example

echo 'text' | iconv -f from_encoding -t to_encoding
iconv -f e -t e from.txt > out.txt

まだ使ってない

  • Options controlling error output
  • Options controlling conversion problems

nkf

nkf --version: Network Kanji Filter Version 2.1.3 (2013-11-22)

help見てたらいろんな変換あったのでメモ

仮名 to カナ

エシディシに感謝

echo "あァァァんまりだァァアァ" | nkf --katakana
# アァァァンマリダァァアァ

echo "あァァァんまりだァァアァ" | nkf --katakana | nkf --hiragana
# あぁぁぁんまりだぁぁあぁ

echo "あァァァんまりだァァアァ" | nkf --katakana-hiragana
# アぁぁぁンマリダぁぁあぁ

半角 to 全角

echo "パパジジ" | nkf -X
# パパジジ

Z option

Z[0-4]   Default/0: Convert JISX0208 Alphabet to ASCII
          1: Kankaku to one space  2: to two spaces  3: HTML Entity
          4: JISX0208 Katakana to JISX0201 Katakana

nkf-z-exmaple.sh

echo "a" | nkf -Z0
a
# a ->
echo "a" | nkf -Z0
echo "&<>'\"" | nkf -Z3
# &amp;&lt;&gt;'&quot;
echo "a" | nkf -Z0
echo "パパジジ" | nkf -Z4
# パパジジ
echo "a" | nkf -Z0
echo "パパジジ" | nkf -Z4 | nkf -Z4
# パパジジ

Z1/Z2(全角スペース to 半角スペース)

視認しづらい…

  • Z1: to one space
  • Z2: to two spaces
  • Kankakuの定義とは?(TODO)
echo -n "" | wc -c
#       0

# 全角
echo -n " " | wc -c
#       3

echo -n " " | nkf -Z2 | wc -c
#       2

echo -n " " | nkf -Z2
#  %

おまけ

nkf-sjis-to-utf8.sh

find . -name "*.R" | xargs nkf -g
find . -name "*.R" | xargs nkf -w -S -Lu --in-place

まとめ

  • 便利なのと面倒なのがある
  • プログラムとの使い分け